package com.mingshashan.building.easy.core.auth;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 标志一个数据实体为授权实体，授权实体需要指定类型，资源？授权主体？都是？
 *
 * @Description 标志一个数据实体为授权实体，授权实体需要指定类型，资源？授权主体？都是？
 * @author jasonxu
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface AuthEntity {

    /**
     * 指定授权资源的类型名称，默认会使用数据实体的简单类名
     * @return
     */
    String name() default "";

    /**
     * 授权资源的类型，PRINCIPAL, RESOURCE, ALL
     * @return
     */
    AuthEntityType type();

    /**
     * 是否有实体类
     * @return
     */
    boolean hasEntity() default true;
}
